function foo(){
    var a=2;
    function bar(){
        console.log(a);
    }
    return bar;
}
var baz=foo();
/*显然bar() 在它自己定义的词法2作用域以外的地方执行
在foo()执行后，通常整个内部作用域被销毁，
引擎又垃圾回收器用来释放不再使用的内存空间
*/
baz();//---这就是闭包
function func(){
    var a=2;
    function baz(){
        console.log(a);
    }
    bar(baz);
}
function bar(fn){
    fn();//快看，这是闭包
}
